<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>分支管理 | 智慧气象前端文档</title>
    <meta name="generator" content="VuePress 1.5.2">
    <link rel="icon" href="/logo.ico">
    <meta name="description" content="xingen">
    <link rel="preload" href="/assets/css/0.styles.2e2f3b38.css" as="style"><link rel="preload" href="/assets/js/app.58c8569b.js" as="script"><link rel="preload" href="/assets/js/2.8394c773.js" as="script"><link rel="preload" href="/assets/js/7.c18e44e2.js" as="script"><link rel="prefetch" href="/assets/js/3.b2ad5e44.js"><link rel="prefetch" href="/assets/js/4.a734d6eb.js"><link rel="prefetch" href="/assets/js/5.bf36f885.js"><link rel="prefetch" href="/assets/js/6.4a5214af.js"><link rel="prefetch" href="/assets/js/8.29606cb9.js"><link rel="prefetch" href="/assets/js/9.30e791e1.js">
    <link rel="stylesheet" href="/assets/css/0.styles.2e2f3b38.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">智慧气象前端文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/project/api.html" class="nav-link">
  项目介绍
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="前端编码风格" class="dropdown-title"><span class="title">前端编码风格</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/standard/vue-style.html" class="nav-link">
  Vue风格
</a></li><li class="dropdown-item"><!----> <a href="/standard/es-style.html" class="nav-link">
  ES6风格
</a></li></ul></div></div><div class="nav-item"><a href="/git-standard/branch-mag.html" aria-current="page" class="nav-link router-link-exact-active router-link-active">
  Git开发流程管理
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/project/api.html" class="nav-link">
  项目介绍
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="前端编码风格" class="dropdown-title"><span class="title">前端编码风格</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/standard/vue-style.html" class="nav-link">
  Vue风格
</a></li><li class="dropdown-item"><!----> <a href="/standard/es-style.html" class="nav-link">
  ES6风格
</a></li></ul></div></div><div class="nav-item"><a href="/git-standard/branch-mag.html" aria-current="page" class="nav-link router-link-exact-active router-link-active">
  Git开发流程管理
</a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>分支管理</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/git-standard/branch-mag.html#功能（feature）分支" class="sidebar-link">功能（feature）分支</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/git-standard/branch-mag.html#bug-修复（fixbug）分支" class="sidebar-link">Bug 修复（fixbug）分支</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/git-standard/branch-mag.html#流程规范" class="sidebar-link">流程规范</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/git-standard/branch-mag.html#并行开发测试环境-bug-修复流程" class="sidebar-link">并行开发测试环境 Bug 修复流程</a></li><li class="sidebar-sub-header"><a href="/git-standard/branch-mag.html#生产环境的-bug-分两种情况" class="sidebar-link">生产环境的 Bug 分两种情况</a></li></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="分支管理"><a href="#分支管理" class="header-anchor">#</a> 分支管理</h1> <p>创建项目时（一般是服务型项目，工具型或辅助型项目可以简单一些），会针对不同环境创建三个常设分支：</p> <ul><li><a href="#1.1">1.1</a> <a name="1.1"></a> develop：开发环境的稳定分支，公共开发环境基于该分支构建。</li> <li><a href="#1.2">1.2</a> <a name="1.2"></a> pre-release：测试环境的稳定分支，测试环境基于该分支构建。</li> <li><a href="#1.3">1.3</a> <a name="1.3"></a> master：生产环境的稳定分支，生产环境基于该分支构建。仅用来发布新版本，除了从 pre-release 或生产环境 Bug 修复分支进行 merge，不接受任何其它修改
平时开发工作中，会根据需要由开发人员创建两类临时分支：</li></ul> <h2 id="功能（feature）分支"><a href="#功能（feature）分支" class="header-anchor">#</a> 功能（feature）分支</h2> <p>为了开发某个特定功能，从 develop 分支上面分出来的。开发完成后，要 merge 到 develop 分支。功能分支的命名，可以采用 feature-*的形式命名(*为任务单号)</p> <h2 id="bug-修复（fixbug）分支"><a href="#bug-修复（fixbug）分支" class="header-anchor">#</a> Bug 修复（fixbug）分支</h2> <p>为了修复某个 bug，从常设分支上面分出来的。修复完成后，再 merge 到对应的分支。Bug 修复分支的命名，可以采用 fixbug-*的形式命名（*为 bug 单号）</p> <h2 id="流程规范"><a href="#流程规范" class="header-anchor">#</a> 流程规范</h2> <ul><li><p><a href="#2.1">2.1</a> <a name="2.1"></a> 从 develop 分支切出一个新分支，根据是功能还是 bug，命名为 feature-_ 或 fixbug-_。</p></li> <li><p><a href="#2.2">2.2</a> <a name="2.2"></a> 开发者完成开发，提交分支到远程仓库。</p></li> <li><p><a href="#2.3">2.3</a> <a name="2.3"></a> 开发者发起 merge 请求（可在 gitlab 页面“New merge request”），将新分支请求 merge 到 develop 分支，并提醒 code reviewer 进行 review</p></li> <li><p><a href="#2.4">2.4</a> <a name="2.4"></a> code reviewer 对代码 review 之后，若无问题，则接受 merge 请求，新分支 merge 到 develop 分支，同时可删除新建分支；若有问题，则不能进行 merge，可 close 该请求，同时通知开发者在新分支上进行相应调整。调整完后提交代码重复 review 流程。</p></li> <li><p><a href="#2.5">2.5</a> <a name="2.5"></a> 转测时，直接从当前 develop 分支 merge 到 pre-release 分支，重新构建测试环境完成转测。</p></li> <li><p><a href="#2.6">2.6</a> <a name="2.6"></a> 测试完成后，从 pre-release 分支 merge 到 master 分支，基于 master 分支构建生产环境完成上线。并对 master 分支打 tag，tag 名可为 v1.0.0<em>2019032115（即版本号</em>上线时间）</p></li></ul> <p><img src="https://upload-images.jianshu.io/upload_images/10886683-fd4b1a73d4604d7a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="正常开发流程"></p> <h3 id="并行开发测试环境-bug-修复流程"><a href="#并行开发测试环境-bug-修复流程" class="header-anchor">#</a> 并行开发测试环境 Bug 修复流程</h3> <p>并行开发（即前一个版本已经转测但未上线，后一个版本又已在开发中并部分合并到了 develop 分支）过程中，转测后测试环境发现的 bug 需要修复，但是 develop 分支此时又有新内容且该部分内容目前不计划转测，可以 pre-release 切出一个 bug 修复分支。完成之后需要同时 merge 到 pre-release 分支与 develop 分支。merge 时参考“正常开发流程”。流程示意图如下</p> <p><img src="https://upload-images.jianshu.io/upload_images/10886683-227af4a8a3355120.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="并行开发测试环境Bug修复流程"></p> <h3 id="生产环境的-bug-分两种情况"><a href="#生产环境的-bug-分两种情况" class="header-anchor">#</a> 生产环境的 Bug 分两种情况</h3> <p><a href="#3.1">3.1</a> <a name="3.1"></a> 紧急 Bug：严重影响用户使用的为紧急 Bug，需立即进行修复。如关键业务流程存在问题，影响用户正常的业务行为。</p> <p><a href="#3.2">3.2</a> <a name="3.2"></a> 非紧急 Bug 或优化：非关键业务流程问题，仅影响用户使用体验，或出现频率较小等，为非紧急 Bug，可规划到后续版本进行修复。
<img src="https://upload-images.jianshu.io/upload_images/10886683-2ebc30086d105283.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="生产环境的Bug分两种情况"></p></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"></div></div>
    <script src="/assets/js/app.58c8569b.js" defer></script><script src="/assets/js/2.8394c773.js" defer></script><script src="/assets/js/7.c18e44e2.js" defer></script>
  </body>
</html>
